package com.os.dao;

import com.os.domain.Person;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

public interface PersonRepository extends JpaRepository<Person, Long> {

    //使用方法名查询，接受一个name参数，返回值为列表
    List<Person> findByAddress(String name);
    //使用方法名查询，接受name和address，返回值为单个对象
    Person findByNameAndAddress(String name, String address);
    //使用query查询，按照参数名称绑定
    @Query("select p from Person p where p.name=:name and p.address=:address")
    Person withNameAndAddressQuery(@Param("name") String name, @Param("address") String address);
    //使用@namedquery查询，请注意在实体类中做的@NameQuery映射
    Person withNameAndAddressNamedQuery(String name, String address);
}
